Docker Engine 安装部署
1 背景知识
本章主要介绍在 Linux 操作系统平台上进行安装和配置 Docker Engine。
2 环境准备
Warning
以下操作均需要操作系统链接互联网,请提前配置完成。
- 操作系统支持。
CentOS. Debian. Fedora. Raspbian. RHEL. SLES. Ubuntu. Binaries
- 启用centos-extras 软件仓库源。
Note
Centos 默认已经开启centos-extras 源。
- 移除Docker旧版本。
#root>
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 关闭 firewalld 防火墙,安装 iptables 防火墙。
#root>
# 关闭防火墙
systemctl stop firewalld
# 取消开机启动
systemctl disable firewalld
#安装iptables
yum install iptables-services -y
# 重启防火墙使配置生效
systemctl start iptables
# 设置防火墙开机启动
systemctl enable iptables
Warning
如果不执行这一步,Docker 服务器无法自动添加规则
(103条消息) centos7安装docker报错iptables v1.4.21: Couldn‘t load target `DOCKER-ISOLATION‘_尧. 木子的博客-CSDN博客
- 创建默认存储目录
#root>
mkdir /data
3 安装Docker Engine
Warning
本章节介绍【联网方式 】、【离线方式】和【二进制安装】安装方式。
- Docker Engine 联网安装:使用 YUM 软件仓库联网安装。
- Docker Engine RPM安装:下载 RPM 包并手动安装,并且手动管理升级。这对于有些无法访问互联网的机器特别有用。
- Docker Engine 二进制安装: 下载二进制安装包,并手动管理维护。
- 自动化脚本:在测试和开发环境中,用户使用自动化脚本安装 Docker。
4 配置 Docker Engine 服务
本节主要介绍Docker Engine 服务配置,让Docker更加好用和安全。
4.1 Docker Engine创建管理用户
以上方式安装后,不会自动创建管理Docker服务的普通用户。每次操作Docker都需要root用户,这样非常不方便。针对这个问题,可以创建新的普通用户,并且加入到docker用户组。
- 创建Docker Engine专用管理用户,并加入docker用户组。
sudo useradd docker -g docker
4.2 Docker Engine启动与停止
- Docker Engine 服务开启启动
systemctl enable docker
- systemctl 启停Docker Engine服务。
sudo systemctl start docker.service
sudo systemctl status docker.service
sudo systemctl stop docker.service
- service 启停Docker Engine服务。
root# sudo service docker start
root# sudo service docker status
root# sudo service docker stop
4.3 Docker Engine更改默认存储目录
-
Docker 默认的存储目录是存放在/var/lib/docker,这个目录一般挂载在根(/) 目录下。
-
这个目录存储大量的镜像和容器,非常容易撑满磁盘,所以需要更换默认的存储目录。
-
配置默认存储目录。
root# vim /etc/docker/daemon.json
---------------写入以下内容--------------
{
…snip…
"data-root": "/data"
…snip…
}
- 关闭Docker 服务。
sudo systemctl stop docker
- 迁移Docker 容器和镜像数据。
sudo mv /var/lib/docker/* /data/
- 重启Docker服务。
sudo systemctl start docker
- 检查是否能够成功拉取镜像。
sudo docker pull hello-world
Warning
也可以使用软连接方式进行数据迁移。
4.4 Docker 命令行自动补全
最小化安装的 Linux 对于输入 docker
命令时无法自动补全。造成使用效率大大降低。这里推荐安装bash-completion 组件。
- 安装
bash-completion
yum install -y bash-completion
- 生效环境变量。
source /usr/share/bash-completion/completions/docker
source /usr/share/bash-completion/bash_completion